package com.hrt.datasender.datastorage.strategy;

import java.util.Calendar;
import java.util.List;

import com.btcode.db.result.Row;
import com.btcode.orm.model.IModel;
import com.hrt.datasender.datadao.model.BcSendPlatformModel;
import com.hrt.datasender.datastorage.StorageDataType;

public interface IStorageStrategy {

    void init();

    /**
     * 获取入库的数据
     */
    List<IModel> getStorageData(Calendar dataTime,List<String> parmList);

    /**
     * 获取要发送的数据
     */
    List<Row> getSendData(BcSendPlatformModel sendPlatForm);

    /**
     * 获取策略类名
     * 
     * @return
     */
    default String getStrategyId() {
        String name = getClass().getName().replace("com.hrt.datasender.datastorage.strategy.", "");
        return name;
    }

    /**
     * 获取数据类型
     * 
     * @return
     */
    StorageDataType getDataType();

    /**
     * 获取备注
     * 
     * @return
     */
    String getNote();

    /**
     * 获取展示名称
     * 
     * @return
     */
    String getShowName();

    /**
     * 获取数据时间间隔，单位为秒
     *
     * @return
     */
     int getDataInterval();

    /**
     * 获取策略表名
     *
     * @return
     */
     String getStoageTable();
}
